package com.yhao.stock.entity;

import java.math.BigDecimal;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;

import java.time.LocalDateTime;
import java.io.Serializable;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

/**
 * <p>
 * 基础信息表
 * </p>
 *
 * @author yhao
 * @since 2023-12-02
 */
@ApiModel(value = "BaseInfo对象", description = "基础信息表")
@NoArgsConstructor
@AllArgsConstructor
@Data
public class BaseInfo implements Serializable {

    private static final long serialVersionUID = 1L;

    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    @ApiModelProperty(value = "代码")
    private String code;

    @ApiModelProperty(value = "名称")
    private String name;

    @ApiModelProperty(value = "区域")
    private String area;

    @ApiModelProperty(value = "上市日期")
    private String listDate;

    @ApiModelProperty(value = "每股净资产")
    private BigDecimal perNet;

    @ApiModelProperty(value = "每股收益")
    private BigDecimal perIncome;

    @ApiModelProperty(value = "净收益")
    private BigDecimal netProfit;

    @ApiModelProperty(value = "增长率")
    private BigDecimal growthRate;

    @ApiModelProperty(value = "营业收入")
    private BigDecimal tradeIncome;

    @ApiModelProperty(value = "每股现金流")
    private BigDecimal perCash;

    @ApiModelProperty(value = "每股公积金")
    private BigDecimal perFund;

    @ApiModelProperty(value = "每股未分配利润")
    private BigDecimal perUndistributeProfit;

    @ApiModelProperty(value = "总股本")
    private BigDecimal totalEquity;

    @ApiModelProperty(value = "流通股本")
    private BigDecimal totalCirculate;

    @ApiModelProperty(value = "统计日期")
    private String dDate;

    @ApiModelProperty(value = "统计时间")
    private LocalDateTime statTime;

    public BaseInfo(String code, String name, String area, String listDate, BigDecimal perNet, BigDecimal perIncome, BigDecimal netProfit, BigDecimal growthRate, BigDecimal tradeIncome,
                    BigDecimal perCash, BigDecimal perFund, BigDecimal perUndistributeProfit, BigDecimal totalEquity, BigDecimal totalCirculate, String dDate, LocalDateTime statTime) {
        this.code = code;
        this.name = name;
        this.area = area;
        this.listDate = listDate;
        this.perNet = perNet;
        this.perIncome = perIncome;
        this.netProfit = netProfit;
        this.growthRate = growthRate;
        this.tradeIncome = tradeIncome;
        this.perCash = perCash;
        this.perFund = perFund;
        this.perUndistributeProfit = perUndistributeProfit;
        this.totalEquity = totalEquity;
        this.totalCirculate = totalCirculate;
        this.dDate = dDate;
        this.statTime = statTime;
    }
}
